package com.ctshk.rpc.guide.req;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 导领信息表
 * </p>
 *
 * @author 谢诗宏
 * @since 2021-02-25
 */
@Data
@ApiModel(value="GuideCollarUpdateReq对象", description="新增导领信息表")
public class GuideCollarUpdateReq implements Serializable {

    private static final long serialVersionUID = -5594792044265645745L;

    @ApiModelProperty(value = "id",required = true)
    private Long id;

    @ApiModelProperty(value = "类型（1：领队 2：导游）",required = true)
    private Integer type;

    @NotBlank(message = "中文姓不为空")
    @ApiModelProperty(value = "中文姓",required = true)
    private String cnSurname;

    @NotBlank(message = "中文名不为空")
    @ApiModelProperty(value = "中文名",required = true)
    private String cnName;

    @NotBlank(message = "中文姓名不为空")
    @ApiModelProperty(value = "中文姓名",required = true)
    private String cnUserName;

    @ApiModelProperty(value = "英文姓")
    private String enSurname;

    @ApiModelProperty(value = "英文名")
    private String enName;

    @ApiModelProperty(value = "英文姓名")
    private String enUserName;

    @ApiModelProperty(value = "员工号")
    private String employeeNumber;

    @NotBlank(message = "座机不为空")
    @ApiModelProperty(value = "座机",required = true)
    private String telephone;

    @NotBlank(message = "座机号区号不为空")
    @ApiModelProperty(value = "座机号区号",required = true)
    private String telephoneAreaCode;

    @NotBlank(message = "内地手机不为空")
    @ApiModelProperty(value = "内地手机",required = true)
    private String mainlandMobile;

    @NotBlank(message = "内地手机区号不为空")
    @ApiModelProperty(value = "内地手机区号",required = true)
    private String mainlandMobileAreaCode;

    @NotNull(message = "性别不为空")
    @ApiModelProperty(value = "性别（1：男 2：女）",required = true)
    private Integer gender;

    @NotNull(message = "出生日期不为空")
    @ApiModelProperty(value = "出生日期",required = true)
    private LocalDate birthday;

    @ApiModelProperty(value = "出生城市id")
    private Long birthCityId;

    @ApiModelProperty(value = "出生城市")
    private String birthCity;

    @ApiModelProperty(value = "邮箱")
    private String email;

    @ApiModelProperty(value = "联系人名称")
    private String contactsName;

    @ApiModelProperty(value = "联系人电话区号")
    private String contactsTelephoneAreaCode;

    @ApiModelProperty(value = "联系人电话")
    private String contactsTelephone;

    @ApiModelProperty(value = "中文居住地址")
    private String cnAddress;

    @ApiModelProperty(value = "英文居住地址")
    private String enAddress;

    @NotNull(message = "领队等级id不为空")
    @ApiModelProperty(value = "领队等级id",required = true)
    private Long leaderLevelId;

    @NotBlank(message = "领队等级不为空")
    @ApiModelProperty(value = "领队等级",required = true)
    private String leaderLevelName;

    @NotNull(message = "领队类型id不为空")
    @ApiModelProperty(value = "领队类型id",required = true)
    private Long leaderTypeId;

    @NotBlank(message = "领队类型名称不为空")
    @ApiModelProperty(value = "领队类型名称",required = true)
    private String leaderTypeName;

    @NotNull(message = "入职时间不为空")
    @ApiModelProperty(value = "入职时间",required = true)
    private LocalDate entryTime;

    @NotNull(message = "精通语言不为空")
    @ApiModelProperty(value = "精通语言",required = true)
    private List<LanguageReq> proficiencyLanguage;

    @NotNull(message = "合同年限不为空")
    @ApiModelProperty(value = "合同年限",required = true)
    private Integer contractPeriod;

    @NotNull(message = "分社id不为空")
    @ApiModelProperty(value = "分社id",required = true)
    private Long departmentId;

    @NotBlank(message = "分社名称不为空")
    @ApiModelProperty(value = "分社名称",required = true)
    private String departmentName;

    @ApiModelProperty(value = "薪水")
    private BigDecimal salary;

    @ApiModelProperty(value = "入行时间")
    private LocalDate industryTime;

    @ApiModelProperty(value = "教育程度id")
    private Long educationLevelId;

    @ApiModelProperty(value = "教育程度")
    private String educationLevel;

    @ApiModelProperty(value = "领队方言")
    private List<LanguageReq> dialect;

    @ApiModelProperty(value = "介绍人名称")
    private String introducer;

    @ApiModelProperty(value = "介绍人电话区号")
    private String introducerTelephoneAreaCode;

    @ApiModelProperty(value = "介绍人电话")
    private String introducerTelephone;

    @ApiModelProperty(value = "介绍人描述")
    private String introducerDescribe;

    @ApiModelProperty(value = "领队证件")
    private List<GuideCollarCertificatesReq> certificatesList;

    @ApiModelProperty(value = "保险名称")
    private String insurance_name;

    @ApiModelProperty(value = "保单号")
    private String policyNumber;

    @ApiModelProperty(value = "起保日期")
    private LocalDate startDate;

    @ApiModelProperty(value = "终保日期")
    private LocalDate finalInsuranceDate;

    @ApiModelProperty(value = "保险图片url")
    private String insurancePictureUrl;

}
